<?php
	// On prolonge la session
	session_start();

	$id_anim='';
	$code='';
	$message='';

	require_once dirname(__FILE__) . "/../../includes/config.php";
	require_once PHP_ROOTPATH.'/classes/database.php';

	$idconnect = Database::getInstance();


	$req="SELECT * FROM droit_utilisateur WHERE (id_droit=10 or id_droit=1)  
			 and id_user=".$_SESSION['membre_id'];
			$querytest = pg_query($idconnect,$req);
			$saise_animal = pg_num_rows($querytest);
			
	//vérification des droits de l'utilisateur
	if(isset($_SESSION['membre_id']) && $saise_animal != 0){

		// On teste si la variable de session existe et contient une valeur
		if(empty($_SESSION['id_anim'])){
			// Si inexistante ou nulle, on redirige vers le formulaire de login
			header('Location: ../saisie.php');
			exit();
		}
		else{
			$id_anim=$_SESSION['id_anim'];
			$code=$_SESSION['code'];
		}

		// Remplissage de la base de données
		if(!empty($_POST)){
			//vérification que les champs ont bien été remplis
			if($_POST['nom']=="none" || empty($_POST['date']) || $_POST['exp']=="none" || empty($_POST['mesure'])){
				$message = 'Veuillez entrer un nom de test, une date de test, un expérimentateur et une mesure !';
			}
			else{
				$_POST['nom'] = htmlspecialchars($_POST['nom']);
				$_POST['date'] = htmlspecialchars($_POST['date']);
				$_POST['exp'] = htmlspecialchars($_POST['exp']);
				$_POST['mesure'] = htmlspecialchars($_POST['mesure']);

				if(preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date'])){
					$nom='';
					if($_POST['nom']=="autre" && !(empty($_POST['autre_nom']))){
						$nom = htmlspecialchars($_POST['autre_nom']);
					}
					else if($_POST['nom']!="autre"){
						$nom = htmlspecialchars($_POST['nom']);
					}
					if($nom!=''){
						//verification de l'existance de type_test
						$query = pg_query($idconnect,"SELECT id_type_test FROM type_test WHERE label='Test biologique' AND unite_mesure LIKE '%$nom%'");
						$nb = pg_num_rows($query);
						if($nb!=0){ //si le type_test existe
							$back = pg_fetch_assoc($query);
							$id_type_test = $back['id_type_test'];
						}
						else{ //création de type_test
							$sql1 = pg_query($idconnect,"INSERT INTO type_test(label, unite_mesure) VALUES('Test biologique','$nom') RETURNING id_type_test");
							$insert_row1 = pg_fetch_row($sql1);
							$id_type_test = $insert_row1[0];
						}

						//verification de l'existante d'un test avec cet expérimentateur et cette date de test dans test
						$query1 = pg_query($idconnect,"SELECT id_test FROM test  WHERE date_test='".$_POST['date']."' AND experimentateur='".$_POST['exp']."'
						AND id_type_test=$id_type_test");
						$nb1 = pg_num_rows($query1);

						if($nb1!=0){ // si une date de test avec cet expérimentateur exsite déjà
							$back1 = pg_fetch_assoc($query1);
							$id_test = $back1['id_test'];
						}
						else{ //création de test
							$sql = pg_query($idconnect,"INSERT INTO test (id_type_test,date_test,experimentateur) VALUES ($id_type_test,'".$_POST['date']."','".$_POST['exp']."') RETURNING id_test");
							$insert_row = pg_fetch_row($sql);
							$id_test = $insert_row[0];
						}

						//vérification de l'existance de l'id_res
						$query2 = pg_query($idconnect,"SELECT id_res FROM resultat_test WHERE id_test=$id_test AND id_animal=$id_anim");
						$nb2 = pg_num_rows($query2);
						if($nb2!=0){ //si un id_res existe déjà
							$back2 = pg_fetch_assoc($query2);
							$id_res = $back2['id_res'];
						}
						else{// création de resultat_test
							$sql = pg_query($idconnect,"INSERT INTO resultat_test (id_test,id_animal) VALUES ($id_test,$id_anim) RETURNING id_res");
							$insert_row = pg_fetch_row($sql);
							$id_res = $insert_row[0];
						}

						//vérification que resultat_test_simple est bien rempli
						$query3 = pg_query($idconnect,"SELECT * FROM resultat_test_simple WHERE id_res=$id_res");
						$nb3 = pg_num_rows($query3);
						if($nb3!=0){ //mise à jour des informations
							$back3 = pg_fetch_assoc($query3);
							if(!(empty($_POST['desc'])) && !($back3['description'])){
								$_POST['desc'] = htmlspecialchars($_POST['desc']);
								$sql = pg_query($idconnect,"UPDATE resultat_test_simple SET description='".$_POST['desc']."' WHERE id_res=$id_res");
							}
							if(!($back3['mesure'])){
								$sql = pg_query("UPDATE resultat_test_simple SET mesure='".$_POST['mesure']."' WHERE id_res=$id_res");
							}
							// Ajout unite
							if(!($back3['unite'])){
								if($_POST['unite'] == -1) {
									$unite = $_POST['newUnite'];
								}
								else {
									$unite = $_POST['unite'];
								}
								$sql = pg_query("UPDATE resultat_test_simple SET unite='".$unite."' WHERE id_res=$id_res");
							}
							$message = "Test déjà enregistré dans la base, informations modifiées";}
						else{ //création de resultat_test_simple
							// Ajout unite
							if($_POST['unite'] == -1) {
								$unite = $_POST['newUnite'];
							}
							else {
								$unite = $_POST['unite'];
							}
							if(!(empty($_POST['desc']))){
								$_POST['desc'] = htmlspecialchars($_POST['desc']);
								$sql = pg_query($idconnect,"INSERT INTO resultat_test_simple (id_res,mesure,description,unite) VALUES($id_res,'".$_POST['mesure']."','".$_POST['desc']."', '".$unite."') ");
							}
							else{
								$sql = pg_query($idconnect,"INSERT INTO resultat_test_simple (id_res,mesure,unite) VALUES($id_res,'".$_POST['mesure']."', '".$unite."')");
							}
							$message = "Test enregistré";
						}
					}
				}
			}
		}
	}
	else{
		header('Location: ../../site.php');
		exit();
	}

?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../../style.css" />
        <?php
			require_once(dirname(__FILE__)."/onglet_animal_s.php");
			$onglet = affiche_onglets($_SESSION['membre_id'],$idconnect);
			$query = pg_query($idconnect,"SELECT sexe FROM animal WHERE animal.id_animal='".$id_anim."'");
			$back = pg_fetch_assoc($query);
			$sexe="";
			if($back["sexe"]){$sexe=$back["sexe"];}

		?>
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="../../style_ie.css" />
        <![endif]-->
        <title>Base de données microcèbes</title>

		<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
		<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
		<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
		<script src="../../js/date_picker.js"></script>
		<script src="../../js/verif_form.js"></script>
		<script>
		$(function() { //affichage du calendrier quand clic sur le champ date
			$( "#datepicker" ).datepicker();
		});

		function afficher(oSelect){ //affichage du champ pour créer une nouvelle entrée au select
			var value = oSelect.options[oSelect.selectedIndex].value;
			var elt = document.getElementsByClassName("autre");

			if(value=="autre"){
				for (var i=0; i<elt.length; i++){
					elt[i].style.display="inline";
				}
			}
			else{
				for (var i=0; i<elt.length; i++){
					elt[i].style.display="none";
				}
			}
		}

		function verif_form(f){ //vérification du formulaire avant l'envoie au serveur
			var dateOk = verifDate(f.date);
			var testOk = verifSelect(f.nom);
			var expOk = verifSelect(f.exp);
			var mesureOk = verif(f.mesure);

			if(dateOk && testOk && expOk && mesureOk){return true;}
			else{
				alert("Veuillez remplir correctement tous les champs");
				return false;
			}
		}
		</script>
    </head>

    <body>
		<?php include((dirname(dirname(dirname(__FILE__))))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Saisie - Informations générales animal <?php echo $code; ?></h1>
			</header>
			<?php include(dirname(dirname(__FILE__))."/menu_saisie.php"); ?>
			<section id="animal">
				<?php
					echo $onglet;
				?>

				<section id="contenu">
				<form method="post" id="anim" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>" onsubmit="return verif_form(this)">
					<p>
					<label class="code2"><?php echo $message; ?></label><br/>
					<label class="label">Nom du test:</label>
					<select name="nom" class="box" onchange="afficher(this)">
						<option value="none">Sélection</option>
						<?php
							//remplissage select avec données de la base de données
							$query = pg_query($idconnect,"SELECT DISTINCT unite_mesure FROM type_test WHERE label='Test biologique' ORDER BY unite_mesure");
							while ($back = pg_fetch_assoc($query)) {
								echo "<option value=\"" . $back["unite_mesure"] . "\">" . $back["unite_mesure"] . "</option>";
							}
						?>
						<option value="autre">Nouveau</option>
					</select><span class="code3" id="erreur_nom">* Choisir un nom de test</span>
					<label class="autre">Précisez:</label><input type="text" class="autre" id="autre_nom" name="autre_nom" >
					<span class="code3" id="erreur_autre_nom">* Entrer un nom de test</span><br/>

					<label class="label">Date du test:</label><input type="text" name="date" id="datepicker" class="box">
					<span class="code3" id="erreur_date">* Champ du type jj/mm/aaaa</span><br/>

					<label class="label">Expérimentateur:</label>
					<select class="box" name="exp">
						<option value="none">Sélection</option>
						<?php

							//remplissage du select avec la liste des utilisateurs inscrits
							$query = pg_query($idconnect,"SELECT DISTINCT (Prenom, Nom) as name FROM Utilisateur WHERE statut!='Visiteur' AND statut!='Collaborateur extérieur'");
							while ($back = pg_fetch_assoc($query)) {
								$temp =str_replace(',',' ',$back["name"]);
								$temp =str_replace('(','',$temp);
								$temp =str_replace(')','',$temp);
								echo "<option value=\"" . $temp."\">" . $temp."</option>\n";
							}
						?>
					</select><span class="code3" id="erreur_exp">* Choisir un expérimentateur</span><br/>

					<label class="label">Valeur:</label><input type="text" name="mesure" class="box">

					<select class="box" name="unite" id="unite">
						<option value="">Choissisez l'unité</option>
						<?php
							$query = pg_query($idconnect,"SELECT DISTINCT unite FROM resultat_test_simple");
							while ($back = pg_fetch_assoc($query)) {
								if($back["unite"] != "") {
									echo "<option value=\"" . $back["unite"]."\">" . $back["unite"]."</option>\n";
								}
							}
						?>
						<option value="-1">Ajouter nouvelle unité</option>
					</select>
					<input name="newUnite" id="newUnite" type="text" class="box" style="display:none">
					<span class="code3" id="erreur_mesure">* Entrer une valeur</span><br/>
					<span class="code3" id="erreur_mesure">* Entrer une unité</span><br/>
					<label class="label">Description:</label><textarea name="desc" class="box"></textarea><br/>
					<input type="submit" class="bouton" value="Valider">
					</p>
				</form>
				</section>
			</section>
			<script>
			//affichage ou non de l'onglet reproduction en fonction du sexe de l'animal
			var sexe = "<?php if($sexe!=""){echo $sexe;} ?>";
			if(sexe == "M"){document.getElementById("Reproduction").style.display="none";}
			</script>
		</section>
	</body>
</html>
